package testDao;

import static org.junit.Assert.assertEquals;

import java.util.ArrayList;
import java.util.Calendar;

import org.junit.BeforeClass;
import org.junit.Test;

import bean.GebruikerBean;
import bean.VeilingBean;
import dao.GebruikerDao;
import dao.VeilingDao;
import db.BuildDB;
import db.DBManager;
import exceptions.GebruikerBestaatAlException;
import exceptions.GebruikerBestaatNietException;

public class testVeilingenDao
{

	private static VeilingDao dao;
	private static GebruikerDao Gdao;
	private static DBManager manager;

	@BeforeClass
	public static void setUpBeforeClass()
	{
		manager = DBManager.getInstance();
		BuildDB.dropTables();
		BuildDB.buildTables();
		dao = new VeilingDao(manager);
		Gdao = new GebruikerDao(manager);

		try
		{
			Gdao.addGebruiker("Piet", "Pietlaan 1", "", "piet@gmail.com", "123");
		} catch (GebruikerBestaatAlException e)
		{
			e.printStackTrace();
		}

	}

	@Test
	public void testAddVeiling()
	{
		GebruikerBean g = null;
		try
		{
			g = Gdao.getGebruiker("piet@gmail.com");
		} catch (GebruikerBestaatNietException e)
		{
			e.printStackTrace();
		}
		dao.addVeiling(g, Calendar.getInstance(), Calendar.getInstance(), "Een veiling", "goedkoop enz", 1);
		ArrayList<VeilingBean> veilingen = dao.getVeilingGebruiker(g);
		assertEquals("Een veiling", veilingen.get(0).getTitel());

	}

	@Test
	public void testAddMultiVeiling()
	{
		GebruikerBean g = null;
		try
		{
			g = Gdao.getGebruiker("piet@gmail.com");
		} catch (GebruikerBestaatNietException e)
		{
			e.printStackTrace();
		}
		dao.addVeiling(g, Calendar.getInstance(), Calendar.getInstance(), "Een veiling 2", "goedkoop enz", 1);
		ArrayList<VeilingBean> veilingen = dao.getVeilingGebruiker(g);
		assertEquals(2, veilingen.size());
	}
}
